1. Technical Field
The present invention generally relates to distributed data processing systems and in particular to server programming in distributed data processing systems. Still more particularly, the present invention relates to verification tools for pre-developed program applications deployed to the distributed data processing systems.
2. Description of the Related Art
Java(trademark) (a trademark of Sun Microsystems, Inc. of San Jose, Calif.) is a type of object-oriented software programming language that enables programmers to create program applications and small programs called applets. A virtual machine is generated-by Java(trademark) (Java) that provides a control interface allowing a Java(trademark) program to overlay and operate on virtually any operating system.
Java was developed with distributed computing, low to no administration and platform independence in mind. The Java platform for enterprise-capable Java computing utilizes Enterprise JavaBean(trademark) (EJBean) (trademark of Sun Microsystems) technology that provides for the development and deployment of reusable server components. EJBean (referred to hereinafter as Enterprise Java Bean, EJB or EJBean) server components are serveriside object oriented objects that run in an application server, with interfaces, that are typically deployed on one computer and may be invoked by a client from another computer and manipulate a database management system on the server. EJBeans are stored in a Java Archive (JAR) file which contains a Manifest file located at META-INF/MANIFEST.MF within the archive.
Referring to FIG. 3, a block diagram of a prior art JAR file, is illustrated. EJBeans are typically distributed and installed in a development environment by packaging them in a JAR file. These files are essentially ZIP files that are created using a JAR utility. The illustrated JAR file has subdirectory 300 of meta-information that is always named META-INF. Subdirectory 300 contains a single Manifest file 302 that is always named MANIFEST.MF. The MANFEST.MF file contains arbitrary information about the files in the archive, such as their encoding or language. The JAR file is capable of containing signature files named xe2x80x9cname.SFxe2x80x9d 304. There is one of these files for each entry that has signed files in the archive. In addition, the JAR file may contain zero or more digital signature files named xe2x80x9cname.sufxe2x80x9d 306, where the suffix (e.g., RSA) is determined by the digital signature format. There is a least one of these files for each signature instruction file. In addition to the MANIFEST.MF subdirectory, the archive contains whatever files (EJBean) 308 a user wishes to package in the archive.
EJBeans operate within-logical xe2x80x9ccontainersxe2x80x9d and are designed to support high scalability using a multi-tier distributed application architecture. (architecture that has multiple application components) and the multi-tier orientation provides many advantages over traditional client/server architectures. Containers provide security, remote access, concurrency, transactions, etc., and may span multiple servers. EJBean components:contain no system level programming, include only business related logic and are fully portable across any EJBean compliant server and any Operating System (OS). Some advantages to EJBean components include reusability, performance, scalability, wire protocol neutral architecture and manageability among others.
Locating logic, EJBeans, for manipulating data on one or more servers allows an application to operate in multi-processing and multi-threaded systems. Server components can be replicated and distributed across multiple systems enabling multi-tier systems with a scalability of essentially no limit. With a multi-tier environment, reliability is high and manageability is easier because most of the application logic is on the server.
A server component is a reusable software application that performs specific functions and is accessible to any other application through the server component""s interface. A server component can be developed for one application and reused in another application that may require the function. Basically, server components are basic building blocks that have specific, published functions that can be combined with other components and applications into a configuration that performs a task designed by a developer.
Traditionally, a Java Virtual Machine (JVM) allows a Java application to run on any operating system, but server side components require proprietary programming interfaces based on vendor software and hardware. EJBean serve side components are portable and virtually vehdor-independent on all Java EJBean compliant application servers. With server component portability, increased scalability, reliability and re-usability, EJBean components can be moved from one execution environment to another without requiring any recoding Determining whether a new component is valid is a problem that accompanies portability and reusability of EJBean components. EJBean components are required to implement a specific set of interfaces with the container that encloses the beans so the container can manage and control the bean. If the component has a purported function and is moved from one execution environment to another, the component should be validated before being deployed throughout the system served by an EJBean compliant server.
Therefore, it would be desirable for the EJBean server program to validate, before deploying, any EJBean server component. It would also be desirable to validate a newly developed EJBean server component. It would further be desirable have the capability to verify any EJBean component at any time, even during operation.
It is therefore one object of the present invention to provide a tool that will enable a developer to verify an EJBean server component prior to use in a data processing system.
It is another object of the present invention to provide a tool that will validate an EJBean server component utilizing a Java Archive file.
It is yet another object of the present invention to provide a tool that will validate an EJBean component prior to deployment.
The foregoing objects are achieved as is now described. The introspection capability of Java is utilized by the described verification tool to verify validity of a target bean""s Java Archive (JAR) file. The deployment descriptor class is verified first according to Enterprise Java Bean specification rules. The remaining classes: remote interface, home interface and bean class are all loaded into a Java Virtual Machine (JVM) and verified by the described verification tool through Java introspection.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.